#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
CSV文件合并工具
将多个CSV文件合并成一个文件
"""

import pandas as pd
import os
from pathlib import Path

def merge_csv_files():
    """
    合并CSV文件的主函数
    1. 合并 goods_images_eval_q.csv 和 goods_images_eval_v.csv 为 goods_images_eval_R.csv
    2. 合并 goods_images_eval_R.csv 和 goods_images_eval_o.csv 为 goods_images_eval_I.csv
    """
    
    # 定义文件路径
    base_dir = Path("data")
    split_results_dir = base_dir / "split_results"
    merged_table_dir = base_dir / "merged_table"
    
    # 确保输出目录存在
    merged_table_dir.mkdir(exist_ok=True)
    
    # 输入文件路径
    q_file = split_results_dir / "goods_images_eval_q.csv"
    v_file = split_results_dir / "goods_images_eval_v.csv"
    o_file = split_results_dir / "goods_images_eval_o.csv"
    
    # 输出文件路径
    r_file = merged_table_dir / "goods_images_eval_R.csv"
    i_file = merged_table_dir / "goods_images_eval_I.csv"
    
    print("开始合并CSV文件...")
    
    # 第一步：合并 q 和 v 文件为 R 文件
    print(f"正在合并 {q_file} 和 {v_file} 为 {r_file}")
    
    try:
        # 读取两个文件
        df_q = pd.read_csv(q_file)
        df_v = pd.read_csv(v_file)
        
        print(f"q文件行数: {len(df_q)}")
        print(f"v文件行数: {len(df_v)}")
        
        # 合并数据
        df_r = pd.concat([df_q, df_v], ignore_index=True)
        
        print(f"合并后R文件行数: {len(df_r)}")
        
        # 保存合并后的文件
        df_r.to_csv(r_file, index=False, encoding='utf-8-sig')
        print(f"成功保存到: {r_file}")
        
    except Exception as e:
        print(f"合并q和v文件时出错: {e}")
        return False
    
    # 第二步：合并 R 和 o 文件为 I 文件
    print(f"正在合并 {r_file} 和 {o_file} 为 {i_file}")
    
    try:
        # 读取o文件
        df_o = pd.read_csv(o_file)
        
        print(f"o文件行数: {len(df_o)}")
        
        # 合并数据
        df_i = pd.concat([df_r, df_o], ignore_index=True)
        
        print(f"最终合并后I文件行数: {len(df_i)}")
        
        # 保存最终合并的文件
        df_i.to_csv(i_file, index=False, encoding='utf-8-sig')
        print(f"成功保存到: {i_file}")
        
    except Exception as e:
        print(f"合并R和o文件时出错: {e}")
        return False
    
    print("所有文件合并完成！")
    
    # 显示最终统计信息
    print("\n最终统计信息:")
    print(f"goods_images_eval_q.csv: {len(df_q)} 行")
    print(f"goods_images_eval_v.csv: {len(df_v)} 行")
    print(f"goods_images_eval_o.csv: {len(df_o)} 行")
    print(f"goods_images_eval_R.csv: {len(df_r)} 行")
    print(f"goods_images_eval_I.csv: {len(df_i)} 行")
    
    return True

if __name__ == "__main__":
    merge_csv_files() 